import { Message } from 'view-design'
import { mapState } from 'vuex'
export default {
    data () {
        return {
            commonColumnConfig: {
                minWidth: 100,
                align: 'center',
                rule: { required: true, message: '不能为空', trigger: 'blur' }
            }
        }
    },
    computed: {
        ...mapState('admin/layout', ['currentAccount'])
    },
    methods: {
        getColumnType (type, hier) {
            if (type === '单选') {
                return { type: 'radio', options: this.getParamOptions(hier) }
            } else if (type === '多选') {
                return { type: 'multiCheck', options: this.getParamOptions(hier) }
            } else if (type === '区间数值' || type === '数字框') {
                return { type: 'number' }
            } else {
                return { type: 'text' }
            }
        },
        // 获取单选/多选时选项
        getParamOptions (hier) {
            let paramOptions = [];
            if (!hier || hier.length === 0 || !hier[0].basic || hier[0].basic.length === 0 || !hier[0].basic[0].values) {
                return paramOptions;
            }
            paramOptions = hier[0].basic[0].values.params.map(d => {
                return {
                    label: d.codeName,
                    value: d.codeName
                }
            })
            return paramOptions;
        },
        /**
         * 维护执行记录页面，编辑/修改执行人/修改执行结果
         * 条件：当前用户需要是执行人其中之一且与审核人不能同一人
         */
        isExecutePersonValid () {
            let maintainerAccount = this.classObject.record.values.maintainer.map(d => d.personId)
            if (!maintainerAccount.includes(this.currentAccount.account) || this.getPersonAccount(this.classObject.record.values[this.getReviewStrInfo(this.view).checkPersonStr]) === this.currentAccount.account) {
                Message.error('当前用户需要是执行人其中之一且与审核人不能同一人')
                return true;
            } else {
                return false;
            }
        },
        /**
         *账号或者姓名的列表展示的处理
         * @param {*} person 数组，包含personId和personName
         * @returns
         */
        getPersonAccount (person) {
            if (!Array.isArray(person)) {
                return person
            } else {
                return person.map(d => d.personId).join(',')
            }
        },
        getPersonName (person) {
            if (!Array.isArray(person)) {
                return person
            } else {
                return person.map(d => d.personName).join(',')
            }
        }
    }
}
